home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 1, No. 10 (1982-06)(Softdisk)(Side B).zip / Softdisk Magazette Volume 1, No. 10 (1982-06)(Softdisk)(Side B).do / BUBBLE.SORT.bas < prev    next >
BASIC Source File  |  1996-12-24  |  14KB  |  340 lines

  1. 60  GOTO 2000
  2. 70 FLAG = 1: GOSUB 3000:FLAG = 0: GOTO 3085
  3. 80 W = 1
  4. 82 S = 9
  5. 84 H = 32
  6. 86 Z = 2
  7. 88 Y = 3
  8. 90  HOME 
  9. 95  GR 
  10. 96  COLOR= 15: FOR X = 0 TO 39: HLIN 0,39 AT X: NEXT 
  11. 98  COLOR= 5:X = 9:Y = 2: GOSUB 5040:X = 13: GOSUB 5570:X = 17: GOSUB 5040:X = 21: GOSUB 5040:X = 25: GOSUB 5290:X = 29: GOSUB 5110
  12. 99 Y = 34:X = 13: GOSUB 5525:X = 17: GOSUB 5370:X = 21: GOSUB 5500:X = 25: GOSUB 5550
  13. 100  FOR I = S TO H  STEP 2
  14. 110  FOR J = S TO H  STEP 2
  15. 120 C =  INT( RND(1) *15)
  16. 130  COLOR= C
  17. 140  HLIN I,I +W AT J: HLIN I,I +W AT J +W
  18. 150  NEXT J
  19. 160  NEXT I
  20. 200 F = 0:V = 30:H = 32:Y = 3: REM  ** VERTICAL SORT
  21. 202  IF SP = 1  THEN  SPEED= 150
  22. 205 COUNT = COUNT +1
  23. 206  PRINT 
  24. 208  VTAB 23: PRINT "THIS IS PASS NUMBER "COUNT"."
  25. 220  IF HO = 1  THEN 400
  26. 300  FOR I = S TO H  STEP 2
  27. 310  FOR J = S TO V  STEP 2
  28. 320  IF  SCRN( I,J +1) =  < SCRN( I,J +Z)  THEN 370
  29. 325 G =  SCRN( I,J +Z)
  30. 330  COLOR=  SCRN( I,J)
  31. 335 F = F +W
  32. 340  HLIN I,I +W AT J +Z: HLIN I,I +W AT J +Y
  33. 350  COLOR= G
  34. 360  HLIN I,I +W AT J: HLIN I,I +W AT J +W
  35. 370  NEXT J
  36. 372  NEXT I
  37. 380  IF VERTICAL = 1  THEN 500
  38. 400  FOR I = S TO H  STEP 2: REM  ** HORIZONTAL SORT
  39. 405  FOR J = S TO V  STEP 2
  40. 410  IF  SCRN( J,I) =  > SCRN( J +Z,I)  THEN 470
  41. 425 G =  SCRN( J +Z,I)
  42. 430  COLOR=  SCRN( J,I)
  43. 435 F = F +W
  44. 440  HLIN J +Z,J +Y AT I: HLIN J +Z,J +Y AT I +W
  45. 450  COLOR= G
  46. 460  HLIN J,J +W AT I: HLIN J,J +W AT I +W
  47. 470  NEXT J
  48. 480  NEXT I
  49. 500  IF F = 0  THEN  SPEED= 255: INPUT "PRESS RETURN ";R$: GOTO 3500
  50. 515 S$ = "S.": IF F = 1  THEN S$ = "."
  51. 520  PRINT "WE JUST BUBBLED "F" TIME" +S$
  52. 525  PRINT  CHR$(7)
  53. 530  GOTO 200
  54. 540  INPUT "PRESS RETURN ";R$: GOTO 2000
  55. 2000  TEXT : HOME 
  56. 2010  GOSUB 2200
  57. 2020 A$ = "BUBBLE SORT"
  58. 2030 B$ = "DEMONSTRATION PROGRAM"
  59. 2040 C$ = "BY"
  60. 2050 H$ = "ALEX MAY"
  61. 2060 E$ = "243 SCHOOL HOUSE LANE"
  62. 2070 F$ = "TUCKAHOE, NJ 08250"
  63. 2080 Y = 5
  64. 2090 X$ = A$: GOSUB 2190
  65. 2100 X$ = B$: GOSUB 2190
  66. 2110 X$ = C$: GOSUB 2190
  67. 2120 X$ = H$: GOSUB 2190
  68. 2130 X$ = E$: GOSUB 2190
  69. 2140 X$ = F$: GOSUB 2190
  70. 2150  VTAB 21
  71. 2160  INPUT "PRESS RETURN ";RR$
  72. 2170  TEXT : HOME 
  73. 2175  GOTO 70
  74. 2180  END 
  75. 2190 X = 15 - INT(( LEN(X$)/2)):Y = Y +2: VTAB Y: HTAB X: PRINT X$: RETURN 
  76. 2200  REM  TITLE FRAME
  77. 2210  HOME : VTAB 2: HTAB 2: FOR X = 2 TO 38: PRINT "*";: NEXT 
  78. 2220  FOR X = 3 TO 22: VTAB X: HTAB 2: PRINT "*";: HTAB 38: PRINT "*": NEXT 
  79. 2230  VTAB 23: HTAB 2: FOR X = 2 TO 38: PRINT "*";: NEXT 
  80. 2240  POKE 33,32: POKE 32,5: POKE 34,3: POKE 35,20
  81. 2250  VTAB 4: HTAB 1: RETURN 
  82. 2260  END 
  83. 2270  FOR X = 1 TO 20: PRINT "*";: NEXT : PRINT : PRINT  CHR$(4)"SAVE BUBBLE SORT,D1"
  84. 2280  PRINT : PRINT "DO YOU WANT A SECOND COPY?": HTAB 12: INPUT "(Y OR N)";RR$: IF RR$ = "N"  THEN  END 
  85. 2290  PRINT : PRINT "WHICH DRIVE?": PRINT : HTAB 12: INPUT "(1 OR 2)";X: PRINT  CHR$(4)"SAVE BUBBLE SORT,D"X: END 
  86. 3000  TEXT : HOME : VTAB 2: HTAB 14: INVERSE : PRINT "BUBBLE SORT": NORMAL : IF FLAG = 1  THEN  RETURN 
  87. 3010  PRINT : HTAB 5: PRINT "SORTING DATA INVOLVES MAKING COM-": PRINT : PRINT "PARISONS AND EXCHANGES AMONG ITEMS TO": PRINT : PRINT "BE SORTED.  FOR EXAMPLE, ONE METHOD OF"
  88. 3020  PRINT : PRINT "ARRANGING A PILE OF CARDS IN NUMERIC": PRINT : PRINT "ORDER WOULD REQUIRE ONE TO LOOK AT": PRINT : PRINT "EACH CARD.  IF A CARD'S NUMBER WERE": PRINT : PRINT "LESS THAN THE NUMBER OF THE CARD ABOVE"
  89. 3022  PRINT : PRINT "IT IN THE PILE, THE LOWER NUMBERED": PRINT : PRINT "CARD WOULD MOVE UP.  THIS METHOD IS": PRINT : PRINT "CALLED A ";: INVERSE : PRINT "BUBBLE SORT";: NORMAL : PRINT "."
  90. 3030  PRINT : INPUT "PRESS RETURN ";R$: IF FLAG = 1  THEN  RETURN 
  91. 3040 FLAG = 1: GOSUB 3000:FLAG = 0: PRINT : HTAB 5: PRINT "THE APPLE CAN DEMONSTRATE BUBBLE": PRINT : PRINT "SORTS GRAPHICALLY DUE TO THE SYSTEM": PRINT : PRINT "OF ASSIGNING NUMBERS TO COLORS TO"
  92. 3050  PRINT : PRINT "ILLUMINATE SECTORS (PIXELS) ON THE": PRINT : PRINT "SCREEN. THIS DEMONSTRATION OF THE "
  93. 3060  PRINT : PRINT "OF THE BUBBLING PROCESS CAN SORT": PRINT : PRINT "COLORS VERTICALLY, HORIZONTALLY, OR": PRINT : PRINT "IN BOTH DIRECTIONS."
  94. 3061  PRINT 
  95. 3062 FLAG = 1: GOSUB 3030: GOSUB 3000:FLAG = 0
  96. 3065  PRINT : HTAB 5: PRINT "THIS DEMO USES THE SPEED = COMMAND"
  97. 3070  PRINT : PRINT "TO ALLOW YOU TO SLOW DOWN THE VISUAL": PRINT : PRINT "PLOTTING SO THAT THE EXCHANGES ARE EASY": PRINT : PRINT "TO SEE."
  98. 3075  PRINT : HTAB 5: PRINT "THE IDEA FOR THIS DEMO CAME FROM": PRINT : PRINT "THE MARCH ISSUE OF CALL- A.P.P.L.E. YOU": PRINT : PRINT "MIGHT LOOK THERE FOR MORE INFORMATION."
  99. 3076  PRINT 
  100. 3080 FLAG = 1: GOSUB 3030: GOSUB 3000:FLAG = 0
  101. 3085  PRINT : HTAB 12: PRINT "BUBBLE SORT MENU"
  102. 3090  PRINT : PRINT "CHOOSE ONE:": PRINT : HTAB 5: PRINT "1) EXPLANATION": PRINT : HTAB 5: PRINT "2) SELECT DEMO SPEED": PRINT : HTAB 5: PRINT "3) SELECT DEMO DIRECTION": PRINT : HTAB 5: PRINT "4) LIST SORT ROUTINE"
  103. 3095  PRINT : HTAB 5: PRINT "5) NEXT MENU": PRINT : HTAB 5: PRINT "6) END DEMO"
  104. 3100  PRINT : HTAB 10: INPUT "-->";X$: ON  VAL(X$) GOTO 3200,3250,3300,3350,3400,3450: GOTO 3100
  105. 3200  GOTO 3000
  106. 3250  HOME : VTAB 5: PRINT "CHOOSE ONE:": PRINT : HTAB 5: PRINT "1) NORMAL SPEED": PRINT : HTAB 5: PRINT "2) SLOW": PRINT : HTAB 10: INPUT "-->";R$: IF R$ = "2"  THEN SP = 1
  107. 3260  GOTO 3300
  108. 3300  HOME : VTAB 5: PRINT "CHOOSE ONE:": PRINT : HTAB 5: PRINT "1) VERTICAL": PRINT : HTAB 5: PRINT "2) HORIZONTAL": PRINT : HTAB 5: PRINT "3) BOTH": PRINT : HTAB 10: INPUT "-->";R$
  109. 3310  IF R$ = ""  THEN 3300
  110. 3320  IF R$ = "1"  THEN VERTICAL = 1
  111. 3330  IF R$ = "2"  THEN HO = 1
  112. 3340  GOTO 80
  113. 3350  LIST 200,372: INPUT "PRESS RETURN ";R$: LIST 400,480: INPUT "PRESS RETURN ";R$: GOTO 70
  114. 3400 FLAG = 1: GOSUB 3000:FLAG = 0: PRINT : PRINT "CHOOSE ONE:": PRINT : HTAB 5: PRINT "1) SORT NUMBERS": PRINT : HTAB 5: PRINT "2) SORT COLORS": PRINT : HTAB 5: PRINT "3) END DEMO": PRINT : HTAB 10: INPUT "--> ";R$
  115. 3402  ON  VAL(R$) GOTO 3410,3000,3450: GOTO 3400
  116. 3410  HOME : VTAB 3: INVERSE : HTAB 14: PRINT "NUMBER SORT": NORMAL : IF FLAG = 1  THEN  RETURN 
  117. 3412  PRINT : HTAB 5: PRINT "COMPUTERS CAN SORT LISTS OF NUM-": PRINT : PRINT "ERIC DATA INTO ORDER, TOO.  THE BUBBLE": PRINT : PRINT "SORT IS AN EASY ROUTINE TO WRITE INTO": PRINT : PRINT "YOUR OWN PROGRAMS.  HOWEVER, IT IS NOT"
  118. 3414  PRINT : PRINT "ESPECIALLY FAST.  FOR MODERATELY LARGE": PRINT : PRINT "AMOUNTS OF DATA, 500 TO 1000 ITEMS, IT": PRINT : PRINT "MAY TAKE 10 TO 20 MINUTES.": PRINT : HTAB 5: PRINT "THE REASON THE BUBBLE TAKES TIME IS"
  119. 3416  PRINT : PRINT "THAT IT EXAMINES ONLY TWO ITEMS AT A": PRINT : PRINT "TIME AND EXCHANGES THE VALUES OF THOSE": PRINT : PRINT "TWO WHICH ARE NEXT TO EACH OTHER.":FLAG = 1: GOSUB 3030: GOSUB 3410:FLAG = 0
  120. 3418  PRINT : PRINT "THIS METHOD FORCES THE BUBBLE SORT TO": PRINT : PRINT "CONTINUE TO GO BACK AND COMPARE ITEMS": PRINT : PRINT "IT HAS ALREADY SORTED.  THE REPEATED": PRINT : PRINT "COMPARISONS ARE NEEDED BECAUSE THE SORT": PRINT : PRINT "MAY FIND AN ITEM AT THE END OF THE LIST"
  121. 3420  PRINT : PRINT "WHICH BELONGS AT THE BEGINNING.  WHEN": PRINT : PRINT "AN ITEM IS MOVED FROM THE END TO THE": PRINT : PRINT "BEGINNING, THE MOVE HAPPENS ONE EXCHANGE"
  122. 3422  PRINT "AT A TIME, FORCING THE COMPUTER INTO": PRINT : PRINT "MANY UNNECESSARY COMPARISONS.":FLAG = 1: GOSUB 3030: GOSUB 3410:FLAG = 0
  123. 3424  PRINT : HTAB 5: PRINT "IN THE SHORT DEMONSTRATION YOU ": PRINT : PRINT "ARE ABOUT TO SEE, THE COMPUTER DOES": PRINT : PRINT "SEVERAL JOBS.  FIRST, IT USES ";: INVERSE : PRINT "DIM";: NORMAL : PRINT " TO": PRINT : PRINT "SET UP AN ARRAY"
  124. 3426  PRINT : HTAB 5: PRINT "THEN IT USES ";: INVERSE : PRINT "RND(1)";: NORMAL : PRINT " TO GENERATE"
  125. 3428  PRINT : PRINT "SOME RANDOM NUMBERS AND FILL THE ARRAY.": PRINT : PRINT "ONCE THE ARRAY IS FULL, A LIST OF THE": PRINT : PRINT "UNSORTED NUMBERS IS PRINTED ON THE ": PRINT : PRINT "LEFT SIDE OF THE SCREEN. "
  126. 3430  PRINT : HTAB 5: PRINT "THEN A ";: INVERSE : PRINT "BUBBLE SORT";: NORMAL : PRINT "IS INVOKED.":FLAG = 1: GOSUB 3030: GOSUB 3410:FLAG = 0
  127. 3432  PRINT : HTAB 5: PRINT "THE NUMBERS ARE SORTED AND A": PRINT : PRINT "LIST OF THE SORTED NUMBERS IS PRINTED": PRINT : PRINT "ON THE RIGHT SIDE OF THE SCREEN.": PRINT : PRINT : PRINT :FLAG = 1: GOSUB 3030:FLAG = 0
  128. 3440  GOTO 4000
  129. 3449  INPUT R$: END 
  130. 3450  END 
  131. 3455  INPUT "PRESS RETURN ";R$: LIST 400,480
  132. 3460  INPUT "PRESS RETURN ";R$: GOTO 70
  133. 3500  TEXT : HOME : VTAB 3: HTAB 5: PRINT "THE DEMO STARTS BY CREATING A GRID": PRINT : PRINT "CONSTRUCTED OF RANDOM COLORS.  IT THEN": PRINT : PRINT "GROUPS THE COLORS INTO CONNECTED BLOCKS": PRINT : PRINT "BY USING THE SCRN(I,J) FUNCTION TO"
  134. 3505 FLAG = 0:HO = 0:VERTICAL = 0:COUNT = 0
  135. 3510  PRINT : PRINT "LOOK AT THE COLOR VALUE OF A SECTOR.": PRINT : HTAB 5: PRINT "BECAUSE BLACK = 0, THE BLACK BLOCKS": PRINT : PRINT "ALWAYS MOVE UP AND TO THE RIGHT AS": PRINT : PRINT "THEY BUBBLE. THE MESSAGE 'WE JUST BUB-"
  136. 3515  PRINT : PRINT "BLED X TIMES.' REFERS TO THE NUMBER OF": PRINT : PRINT "EXCHANGES MADE ON EACH PASS."
  137. 3520  PRINT : INPUT "PRESS RETURN ";R$: GOTO 70
  138. 4000  REM  ** BUBBLE SORT DEMO
  139. 4004  CLEAR 
  140. 4005  DIM N(15)
  141. 4010  FOR I = 1 TO 14:N(I) =  INT( RND(2) *110): NEXT 
  142. 4015  HOME : VTAB 3: HTAB 3: PRINT "UNSORTED LIST": PRINT : FOR I = 1 TO 9: HTAB 4: PRINT "ITEM  "I" - "N(I): NEXT 
  143. 4020  FOR I = 10 TO 14: HTAB 4: PRINT "ITEM "I" - "N(I): NEXT 
  144. 4025  POKE 33,17: POKE 32,23
  145. 4030 BUBBLE = 0: REM  ** SET EXCHANGE COUNTER TO ZERO
  146. 4035  FOR I = 1 TO 13: REM     COUNTER FOR COMPARING ITEMS
  147. 4040  IF N(I) < = N(I +1)  THEN 4070: REM           ** COMPARE TWO ITEMS; JUMP TO NEXT ITEM IF ALREADY IN          NUMERICAL ORDER
  148. 4045 BUBBLE = BUBBLE +1: REM     ** ADD 1 TO THE COUNTER
  149. 4050 TEMP = N(I): REM   ** TEMPORARILY SAVE VALUE OF FIRST ITEM IN THE COMPARISON
  150. 4055 N(I) = N(I +1): REM  ** CHANGE VALUE OF FIRST ITEM
  151. 4060 N(I +1) = TEMP: REM  ** REPLACE VALUE OF SECOND ITEM WITH VALUE OF FIRST ITEM WHICH WAS SAVED IN TEMP
  152. 4065  REM   ** AT THIS POINT AN EXCHANGE HAS OCCURRED TO HELP PUT ITEMS IN    THEIR DESIRED ORDER
  153. 4070  NEXT I: REM  ** CONTINUE THE LOOP
  154. 4075  IF BUBBLE = 0  THEN 4085: REM       ** ITEMS ARE COMPLETELY SORTED; GO TO NEXT ROUTINE  
  155. 4080  GOTO 4030: REM   ** ITEMS ARE NOT SORTED YET; KEEP TRYING 
  156. 4085  HOME 
  157. 4090  VTAB 3: PRINT " SORTED LIST": PRINT 
  158. 4095  FOR I = 1 TO 9: REM      ** START NEW LOOP 
  159. 4100  PRINT "ITEM  "I" - "N(I): NEXT : REM       ** PRINT VALUES IN SORTED ORDER
  160. 4105  FOR I = 10 TO 14: PRINT "ITEM "I" - "N(I): NEXT 
  161. 4110  POKE 32,0: POKE 33,40
  162. 4115  VTAB 23
  163. 4120  INPUT "WOULD YOU LIKE TO SORT AGAIN? ";R$: IF  LEFT$(R$,1) = "Y"  THEN 4010
  164. 4130  GOTO 3400
  165. 4999  END 
  166. 5000  REM  LO-RES ALPHABET
  167. 5010  REM  ** A
  168. 5020  VLIN Y +0,Y +4 AT X +0
  169. 5025  PLOT X +1,Y +0: PLOT X +1,Y +2
  170. 5030  VLIN Y +0,Y +4 AT X +2
  171. 5035  RETURN 
  172. 5040  REM  ** B
  173. 5045  HLIN X +0,X +1 AT Y +0: PLOT X +0,Y +1: PLOT X +2,Y +1
  174. 5050  HLIN X +0,X +1 AT Y +2: PLOT X +0,Y +3: PLOT X +2,Y +3: HLIN X +0,X +1 AT Y +4
  175. 5055  RETURN 
  176. 5065  REM  ** C
  177. 5070  HLIN X +0,X +2 AT Y +0: VLIN Y +1,Y +4 AT X +0
  178. 5074  HLIN X +1,X +2 AT Y +4
  179. 5075  RETURN 
  180. 5079 :
  181. 5080  REM  ** D
  182. 5081 :
  183. 5085  VLIN Y +0,Y +4 AT X +0
  184. 5090  PLOT X +1,Y +0: PLOT X +1,Y +4
  185. 5095  VLIN Y +1,Y +3 AT X +2
  186. 5100  RETURN 
  187. 5109 :
  188. 5110  REM  ** E
  189. 5111 :
  190. 5115  VLIN Y +0,Y +4 AT X +0
  191. 5120  PLOT X +1,Y +2
  192. 5125  HLIN X +1,X +2 AT Y +0
  193. 5130  HLIN X +1,X +2 AT Y +4
  194. 5135  RETURN 
  195. 5139 :
  196. 5140  REM  ** F
  197. 5141 :
  198. 5145  VLIN Y +0,Y +4 AT X +0
  199. 5150  HLIN X +1,X +2 AT Y +0
  200. 5155  PLOT X +1,Y +2
  201. 5160  RETURN 
  202. 5164 :
  203. 5165  REM  ** G
  204. 5166 :
  205. 5170  VLIN Y +0,Y +4 AT X +0
  206. 5175  HLIN X +1,X +2 AT Y +0
  207. 5180  VLIN Y +2,Y +4 AT X +2
  208. 5185  PLOT X +1,Y +4
  209. 5190  RETURN 
  210. 5199 :
  211. 5200  REM  ** H
  212. 5201 :
  213. 5205  VLIN Y +0,Y +4 AT X +0
  214. 5210  VLIN Y +0,Y +4 AT X +2
  215. 5215  PLOT X +1,Y +2
  216. 5220  RETURN 
  217. 5225 :
  218. 5226  REM  ** I
  219. 5227 :
  220. 5230  VLIN Y +0,Y +4 AT X +1
  221. 5235  RETURN 
  222. 5239 :
  223. 5240  REM  ** J
  224. 5241 :
  225. 5245  VLIN Y +3,Y +4 AT X +0
  226. 5250  PLOT X +1,Y +4
  227. 5255  VLIN Y +0,Y +4 AT X +2
  228. 5260  RETURN 
  229. 5264 :
  230. 5265  REM  ** K
  231. 5266 :
  232. 5270  VLIN Y +0,Y +4 AT X +0
  233. 5275  PLOT X +1,Y;X: PLOT X +2,Y +1
  234. 5280  VLIN Y +3,Y +4 AT X +3
  235. 5285  RETURN 
  236. 5289 :
  237. 5290  REM   ** L
  238. 5291 :
  239. 5295  VLIN Y +0,Y +4 AT X +0
  240. 5300  HLIN X +1,X +2 AT Y +4
  241. 5310  RETURN 
  242. 5314 :
  243. 5315  REM  ** M
  244. 5316 :
  245. 5320  VLIN Y +0,Y +4 AT X +0
  246. 5325  VLIN Y +1,Y +2 AT X +1
  247. 5330  VLIN Y +0,Y +4 AT X +2
  248. 5335  RETURN 
  249. 5339 :
  250. 5340  REM  ** N
  251. 5341 :
  252. 5345  VLIN Y +0,Y +4 AT X +0
  253. 5350  VLIN Y +1,Y +2 AT X +1
  254. 5355  VLIN Y +2,Y +3 AT X +2
  255. 5360  VLIN Y +0,Y +4 AT X +3
  256. 5365  RETURN 
  257. 5369 :
  258. 5370  REM  ** O
  259. 5371 :
  260. 5375  VLIN Y +0,Y +4 AT X +0
  261. 5380  PLOT X +1,Y +0: PLOT X +1,Y +4
  262. 5385  VLIN Y +0,Y +4 AT X +2
  263. 5390  RETURN 
  264. 5394 :
  265. 5395  REM  ** P
  266. 5396 :
  267. 5400  VLIN Y +0,Y +4 AT X +0
  268. 5405  PLOT X +1,Y +0: PLOT X +1,Y +2
  269. 5410  VLIN Y +0,Y +2 AT X +2
  270. 5415  RETURN 
  271. 5419 :
  272. 5420  REM  ** Q
  273. 5421 :
  274. 5425  VLIN Y +0,Y +4 AT X +0
  275. 5430  PLOT X +1,Y +0: PLOT X +1,Y +4
  276. 5435  VLIN Y +0,Y +4 AT X +3
  277. 5440  PLOT X +3,Y +4
  278. 5445  RETURN 
  279. 5499 :
  280. 5500  REM   ** R
  281. 5501 :
  282. 5505  VLIN Y +0,Y +4 AT X +0
  283. 5510  PLOT X +1,Y +0: PLOT X +1,Y +2: PLOT X +2,Y +1
  284. 5515  VLIN Y +3,Y +4 AT X +2
  285. 5520  RETURN 
  286. 5524 :
  287. 5525  REM  ** S
  288. 5526 :
  289. 5530  HLIN X +0,X +2 AT Y +0
  290. 5535  PLOT X +0,Y +1: PLOT X +1,Y +2: PLOT X +2,Y +3
  291. 5540  HLIN X +0,X +2 AT Y +4
  292. 5545  RETURN 
  293. 5549 :
  294. 5550  REM  ** T
  295. 5551 :
  296. 5555  HLIN X +0,X +2 AT Y +0
  297. 5560  VLIN Y +1,Y +4 AT X +1
  298. 5565  RETURN 
  299. 5569 :
  300. 5570  REM  ** U
  301. 5571 :
  302. 5575  VLIN Y +0,Y +4 AT X +0
  303. 5580  PLOT X +1,Y +4
  304. 5585  VLIN Y +0,Y +4 AT X +2
  305. 5590  RETURN 
  306. 5594 :
  307. 5595  REM  ** V
  308. 5596 :
  309. 5600  VLIN Y +0,Y +3 AT X +0
  310. 5605  PLOT X +1,Y +4
  311. 5610  VLIN Y +0,Y +3 AT X +2
  312. 5615  RETURN 
  313. 5619 :
  314. 5620  REM  ** W
  315. 5621 :
  316. 5625  VLIN Y +0,Y +4 AT X +0
  317. 5630  PLOT X +1,Y +3
  318. 5635  VLIN Y +0,Y +4 AT X +2
  319. 5640  RETURN 
  320. 5644 :
  321. 5645  REM  ** X
  322. 5650  VLIN Y +0,Y +2 AT X +0: VLIN Y +3,Y +4 AT X +0
  323. 5655  PLOT X +1,Y +2
  324. 5660  VLIN Y +0,Y +2 AT X +2: VLIN Y +3,Y +4 AT X +2
  325. 5665  RETURN 
  326. 5669 :
  327. 5670  REM  ** Y
  328. 5671 :
  329. 5675  VLIN Y +0,Y +1 AT X +0
  330. 5680  VLIN Y +2,Y +1 AT X +1
  331. 5685  VLIN Y +0,Y +1 AT X +2
  332. 5690  RETURN 
  333. 5694 :
  334. 5695  REM  ** Z
  335. 5696 :
  336. 5700  HLIN X +0,X +2 AT Y +0
  337. 5705  PLOT X +2,Y +1: PLOT X +1,Y +2: PLOT X +0,Y +3
  338. 5710  HLIN X +0,X +2 AT Y +4
  339. 5720  RETURN 
  340. 9999  END